package com.qf.mpswaggershiro.product.service;

import com.qf.mpswaggershiro.product.entity.Category;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 商品分类 服务类
 * </p>
 *
 * @author cui
 * @since 2023-02-14
 */
public interface ICategoryService extends IService<Category> {
    /**
     * 查询商品的分类信息
     * 并且组织成如下结构
     * 直接在list中放入的对象是商品的一级分类对象
     * 同时要保证一级分类对象中有正确的 下级分类 数据
     * 还要保证 二级分类下有三级分类数据
     * @return
     */
    List<Category> categoryList();



    List<Category> categoryListBySql();

    /**
     * 首页的分类推荐商品信息
     * @return
     */
    List<Category> recommendsList();

    /**
     * 通过递归的方式把需要的 分类信息查询出来
     * 只查一次数据库，然后在java内存中处理数据
     * @return
     */
    List<Category> categoryListRecursive();

    /**
     * categoryListRecursive 的改进版
     * 使用更合理的数据结构处理 List<Category> 的查询
     * @return
     */
    List<Category> categoryListRecursiveBetter();
}
